package FileManager;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;


public class ManejadorArchivo {

    File archivo;
    BufferedReader buffer_lectura;
    int num_ultimo_caracter;

    public ManejadorArchivo(File archivo){
        this.archivo = archivo;        
        num_ultimo_caracter = -1;
    }

    public boolean abrir_archivo() throws FileNotFoundException{
        buffer_lectura = null;
        buffer_lectura = new BufferedReader(new FileReader(archivo.getAbsoluteFile()));
        if(buffer_lectura != null)
            return true;
        return false;
    }

    public boolean cerrar_archivo() throws IOException{
        if( buffer_lectura != null){
            buffer_lectura.close();
            return true;
        }
        return false;
    }

    public boolean archivo_abierto(){
        if(buffer_lectura != null)
            return true;
        return false;
    }

    public Vector<String> obtener_lineas() throws IOException {
        String linea= new String();
        Vector<String> lineas= new Vector<String>();        
        while( (linea = buffer_lectura.readLine()) != null )
            lineas.add(linea);        
        return lineas;
    }

    public int obtener_cod_sig_caracter(boolean marcar) throws IOException{
        if(buffer_lectura.ready()){
            if(marcar == true)
                buffer_lectura.mark(3);
            return buffer_lectura.read();
        }
        return -1;
    }

    public void retroceder() throws IOException{
        if(buffer_lectura.ready())
            buffer_lectura.reset();
    }

    public char traducir_a_caracter(int valor){  
        char c = (char) valor;
        return c;
    }
    
    public String nombre_archivo(){
        String nombre;
        if(this.archivo != null){
            nombre = archivo.getName();
            return nombre.substring(0, nombre.length()-4);
        }
        return "noname";
    }
}
